এই অধ্যায়ে আমরা সি প্রোগ্রামিং এর দুটি বিল্ট-ইন(built-in) ফাংশন printf() এবং scanf() কে বেশী ফোকাস করবো যা ইনপুট এবং আউটপুট কার্য সম্পাদনের জন্য ব্যবহৃত হয়। এছাড়া এই অধ্যায়ে আপনি বৈধ সি প্রোগ্রাম লেখাও শিখবেন।
ইনপুট এবং আউটপুট কার্যাবলী সম্পাদনের জন্য সি প্রোগ্রামিং এ কিছু বিল্ট-ইন লাইব্রেরী ফাংশন রয়েছে।
সি প্রোগ্রামিং ইনপুট-আউটপুট( I/O) এর জন্য সবচেয়ে বেশী ব্যবহৃত দুটি ফাংশন হলো printf() এবং scanf()।
স্টান্ডার্ড ইনপুট ডিভাইস(কীবোর্ড) এর মাধ্যমে ইউজার থেকে formated ইনপুট নেওয়ার জন্য scanf()
ফাংশন ব্যবহৃত হয়। পক্ষান্তরে স্টান্ডার্ড আউটপুট ডিভাইস(স্ক্রিন) এ formated আউটপুট পাঠানোর জন্য printf()
ফাংশন ব্যবহৃত হয়।
scanf("%c", &var_name); // Character ইনপুট নেওয়ার জন্য
scanf("%d", &var_name); // integer ইনপুট নেওয়ার জন্য
scanf("%f", &var_name); // float ইনপুট নেওয়া হয়
scanf("%lf", &var_name); // double ইনপুট নেওয়া হয়
scanf("%s", &var_name); // string ইনপুট নেওয়া হয়
printf("%c", &var_name); // Character এ আউটপুট পাওয়ার জন্য
printf("%d", &var_name); // integer এ আউটপুট পাওয়ার জন্য
printf("%f", &var_name); // float এ আউটপুট পাওয়ার জন্য
printf("%lf", &var_name); // double এ আউটপুট পাওয়ার জন্য
printf("%s", &var_name); // string এ আউটপুট পাওয়ার জন্য
kt_satt_skill_example_id=97
আউটপুট
প্রোগ্রাম কিভাবে কাজ করে তার ব্যাখ্যা নিচে ধাপে ধাপে দেওয়া হলোঃ
main()
ফাংশন থাকতে হবে। main()
ফাংশনের প্রথম থেকে কোড এক্সিকিউশন(execution) শুরু হয়।printf()
হলো লাইব্রেরী ফাংশন যা স্ক্রিনে ফরম্যাটেড(formated) আউটপুট পাঠায়। "stdio.h"
হেডার ফাইলে printf()
ফাংশন ডিক্লেয়ার করা আছে।stdio.h
হলো স্টান্ডার্ড ইনপুট-আউটপুট হেডার(header) ফাইল এবং #include
হলো প্রিপ্রোসেসর(preprocessor) যা হেডার ফাইলকে সোর্স কোডের সংযুক্ত করে। কম্পাইলার যখন printf()
ফাংশনকে এক্সিকিউট করে এবং stdio.h
হেডার ফাইলকে খুঁজে না পাই তাহলে কম্পাইলার error দেখায়।return 0;
স্টেটমেন্ট এর মাধ্যমে প্রোগ্রাম থেকে বের হয়ে যায়। সহজ ভাষায় প্রোগ্রামের সমাপ্তি ঘটায়।kt_satt_skill_example_id=85
ফরম্যাটেড ক্যারেক্টার ইনপুট গ্রহণ এবং আউটপুট পাঠানোর জন্য "%c" ফরম্যাট স্ট্রিং ব্যবহৃত হয়।
kt_satt_skill_example_id=87
printf()
ফাংশনের কোটেশন মার্কের মধ্যে ইন্টেজারের জন্য ফরম্যাটেড(formated) স্ট্রিং "%d"
রয়েছে। এক্ষেত্রে ফরম্যাট স্ট্রিং যদি integerNumber আর্গুমেন্টের সাথে মিলে যায় তাহলে ইহা স্ক্রিনে আউটপুট দেখায়।
kt_satt_skill_example_id=89
scanf()
ফাংশন কীবোর্ড থেকে ফরম্যাটেড(formated) ইনপুট গ্রহণ করে। যখন ইউজার ইন্টেজার নাম্বার ইনপুট দেয় তখন ইহা IntegerNumber ভ্যারিয়েবলের মধ্যে সংরক্ষিত হয়।
লক্ষ্য করলে দেখবেন যে, IntegerNumber এর পুর্বে '&'
চিহ্ন আছে। &IntegerNumber দ্বারা IntegerNumber এর এড্রেসকে নির্দেশ(point) করে এবং ইনপুট ভ্যালু ঐ এড্রেসে জমা হয়।
kt_satt_skill_example_id=92
ফ্লোটের জন্য ফরম্যাটেড ইনপুট গ্রহণ এবং আউটপুট পাঠানোর জন্য "%f" ফরম্যাট স্ট্রিং ব্যবহৃত হয়
উপরের প্রোগ্রামে যখন কোনো ক্যারেক্টার প্রবেশ করানো হয়, ক্যারেক্টার তার নিজের ফরম্যাটে সংরক্ষিত হয় না। বরং সংখ্যা ভ্যালু(আসকি ভ্যালু) ফরম্যাটে সংরক্ষিত হয়।
যখন আমরা "%c"
টেক্সট ফরম্যাট ব্যবহারা করে প্রিন্ট নিই তখন ইহা স্ক্রিনে ক্যারেক্টার ফরম্যাটে দেখায়।
kt_satt_skill_example_id=93
ক্যারেক্টার 'b' এর ASCII ভ্যালু হলো 96। যখন 'b' প্রবেশ করানো হয় তখন character ভ্যারিয়েবলে 'b' এর পরিবর্তে 96 জমা হয়।
আপনি যদি কোনো ক্যারেক্টারের আসকি কোড জানেন তাহলে ক্যারেক্টার হিসাবে আউটপুট নিতে পারবেন। নিচের উদাহরণে ইহা দেখানো হলোঃ
kt_satt_skill_example_id=94
common.read_more